package com.two.screen.water.balance.net.api

import com.two.screen.water.balance.utils.*
import io.reactivex.ObservableEmitter
import io.reactivex.disposables.Disposable

object PollingUpdateDataApi {

    private var mOeJly: ObservableEmitter<String>? = null
    private var mD: Disposable? = null

//    fun pollingUpdateData(mActivity: BaseActivity) {
//        cancelPollingOrderList()
//        Observable.create(ObservableOnSubscribe<String> { e ->
//            mOeJly = e
//            NormalApi.getIndexData(sortedMapOf(), Urls.heartBeat)
//                .compose(RxUtils.aLifecycle(mActivity))
//                .compose(RxUtils.io())
//                .subscribe(object : NormalObserver<IndexBean>(mActivity) {
//                    override fun onError(t: Throwable) {
//                        e.onComplete()
//                    }
//
//                    override fun dataIsNull(t: BaseBean<out IndexBean>) {
//                        e.onComplete()
//                    }
//
//                    override fun onSuccessNext(t: BaseBean<out IndexBean>) {
//                        var update_version = t.data!!.update_version
//
//                        var curUpdateVersionCode = SPUtils.getLong(Params.update_version,-1)
//                        CommUtils.println("更新版本-->","update_version:$update_version,curUpdateVersionCode:$curUpdateVersionCode")
//                        //检查数据版本是否需要更新
//                        if (update_version != null && update_version != curUpdateVersionCode) {
//                            NormalApi.getIndexData(sortedMapOf(), Urls.updateData)
//                                .compose(RxUtils.aLifecycle(mActivity))
//                                .compose(RxUtils.io())
//                                .subscribe(object : NormalObserver<IndexBean>(mActivity) {
//                                    override fun onError(t: Throwable) {
//                                        e.onComplete()
//                                        super.onError(t)
//                                    }
//
//                                    override fun dataIsNull(t: BaseBean<out IndexBean>) {
//                                        e.onComplete()
//                                        super.dataIsNull(t)
//                                    }
//
//                                    override fun onSuccessNext(t: BaseBean<out IndexBean>) {
//                                        SPUtils.putLong(Params.update_version, update_version)
//                                        //TODO：更新数据
//                                        DataApi.updateData(t.data!!)
//                                        e.onComplete()
//                                    }
//                                })
//
//                        } else {
//                            e.onComplete()
//                        }
//                    }
//                })
//        })
//            .repeatWhen {
//                return@repeatWhen it.flatMap {
//                    return@flatMap Observable.timer(5, java.util.concurrent.TimeUnit.SECONDS)
//                }
//            }
//            .compose(RxUtils.aLifecycle(mActivity))
//            .subscribe(object : MyObserver<String>() {
//                override fun onSubscribe(d: Disposable) {
//                    super.onSubscribe(d)
//                    mD = d
//                }
//
//                override fun onError(e: Throwable) {
//                    mActivity.d("pollingUpdateData=>:onError:$e")
//                }
//
//                override fun onNext(t: String) {
//                    mActivity.d("pollingUpdateData=>:onNext:$t")
//                }
//            })
//    }


    fun cancelPollingOrderList() {
        try {
            mD?.dispose()
            mD = null
            mOeJly = null
        } catch (e: Exception) {
            ToastUtil.showToast("心跳失败:$e")
        }
    }

}